草庐IT

C++ unique_ptr 和映射

全部标签

java - 使用 SHARE 属性在 Windows 中内存映射文件(因此文件不会被锁定以防止删除)

有什么方法可以将文件的内容映射到Windows中的内存中而不锁定文件(特别是,这样可以在仍然mmap的情况下删除文件)?JavaNIO在Windows中以这样一种方式库mmap文件,即当堆中有任何非垃圾收集的MappedByteBuffer引用时,无法删除映射文件。JDK团队声称这是Windows的限制,但仅当文件被mmap时,而不是当它们作为常规文件打开时:https://mail.openjdk.java.net/pipermail/nio-dev/2019-January/005698.html(显然,如果一个文件在mmap时被删除,那么mmap区域究竟应该发生什么在Window

windows - 使用内存映射文件同时允许其他进程完全访问

我正在尝试在Windows下使用内存映射文件(使用CreateFile/CreateFileMapping/MapViewOfFile函数),并且我当前在调用CREATE_FILE时指定FILE_SHARE_READ和FILE_SHARE_WRITE。但是,这会锁定文件以防止其他进程使用。我想要的是在调用CreateFileMapping或MapViewOfFile时内存映射文件的快照,这样我就看不到对文件所做的任何更改(写入或删除)通过其他过程。有点像写时复制,但其他进程正在执行写入。我可以在Windows上使用内存映射文件来执行此操作吗? 最佳答案

c++ - 内存映射文件 - 映射结构而不是文件?

我对内存映射文件非常陌生,而且我对某些事情有点迷茫。我知道,如果我有一个文件,我可以使用MMaps一次加载它并从多个进程访问它。但在我的情况下,我正在创建一个附加到进程A的DLL,并且已为该DLL提供指向进程A准备的cSurface的指针。我需要与进程B共享那个cSurface的数据。我真的不想调用一个空白的MMap并将我的进程A的表面复制到其中,只是为了在进程B中再次复制它。是否可以像文件一样映射我的表面,以便MMap在创建时已经指向表面数据(就像我加载SomeTextFile.txt一样)?理论上,我的计划是在ProcA中接收一个指向表面的指针,告诉Windows以给定的名称共享该

c# - 将 USB 设备名称映射到 C# 中的 com 端口?

我有一个提供虚拟com端口的USB设备。但是,此设备不会通过COM端口“友好名称”来标识自己(例如在Windows单元管理器中)。但是它确实为USB设备提供了一个正确的名称。依次列出关联的com端口,如下所示:我希望能够通过名称(“PrologixGPIB...”)识别设备并从该名称中获取com端口号。我如何在C#/.NET中执行此操作?我能找到的唯一代码只能通过COM端口友好名称搜索,而不是USB设备名称。感谢您的宝贵时间! 最佳答案 我没有设置虚拟COM端口,所以无法检查这个,但是thisarticle中的答案之一似乎符合您的要

.net - Windows - 将键盘键映射到与鼠标左键相同的操作

是一种编程方式(或更简单的方式)将某些键盘键映射到与WindowsXP/Vista中的鼠标左键相同的窗口范围内的操作。如果程序化有没有办法在.NET2.0(或更高版本)中执行此操作? 最佳答案 有一种编程方式,可以在C#中使用全局Hook。但我发现像AutoHotkey这样的工具,专为此类事情而设计,启动和运行起来要快得多。脚本也可以编译为可执行文件。 关于.net-Windows-将键盘键映射到与鼠标左键相同的操作,我们在StackOverflow上找到一个类似的问题:

c# - 映射到程序的虚拟驱动器

是否可以创建一个程序(最好是.NET)来创建虚拟驱动器盘符,但当它被读取、写入或浏览时,一个独立的程序会处理返回的内容?虽然您可以通过将驱动器映射到TCP服务器、webDAV或类似的东西来做到这一点,但我想知道它是否可以通过内部链接来完成。这将用于protected存储。如果该程序已将密码输入其中,则该程序会对驱动器中的所有文件(因为它们被各种程序读取)进行流式加密和解密。 最佳答案 您所说的是存储设备驱动程序,它是DaemonTools和TrueCrypt等程序如何完成这种“虚拟”驱动器。不过,您可能不必深入研究内核即可完成此操作

c# - 如何在新的 cs 文件中覆盖 VS2010 的自动文件夹-> 命名空间映射

项目通常被分解成文件夹,这些文件夹通常会映射到代码命名空间。但是,在我的许多核心项目中,我有一些类已合并到现有的命名空间中-例如,我有一个MVC引用库,可以将其他类型添加到System.Web.Mvc或System.ComponentModel.DataAnnotations,例如。在其他项目中,我可能有一套接口(interface)和一套这些接口(interface)的默认实现;所以我可能会将代码文件分成两个单独的文件夹(例如“对象”和“接口(interface)”),但我不想有Objects和Interfaces子命名空间。同样,我经常为其他库中的类型编写扩展方法——例如Syste

c# - AutoMapper 中相同实体类型的不同映射规则

我有两个实体:Order和OrderDTO我正在使用AutoMapper将它们映射在一起。基于某些条件,我希望这些实体以不同方式映射。事实上,我需要为这些实体使用两个或多个不同的映射规则(CreateMap)。并且在调用Map函数时,我想告诉引擎要使用哪个映射规则。感谢这个问题:UsingtheinstanceversionofCreateMapandMapwithaWCFservice?一种方法是使用不同的映射器实例,这样每个实例都可以拥有自己的映射规则:varconfiguration=newConfigurationStore(newTypeMapFactory(),Mapper

c# - View 和表之间的 Entity Framework 映射关联

我可以直观地映射1:1(一对一)表格,如下所示:但我无法理解如何在表和View之间进行相同的映射,就像这样在此图中,表示了两个实体。如果我在实体模型中手动创建一个关联,并像这样设置它的映射:然后我得到错误:Error3021:ProbleminMappingFragmentstartingatline172:Eachofthefollowingcolumnsintableview_EmployeeViewismappedtomultipleconceptualsideproperties:view_EmployeeView.EmployeeIDismappedtoEmployeesvi

c# - 在 Fluent NHibernate 自动映射中自引用多对多关系自动映射到 1 :n and not n:n

标题几乎解释了一切,我有一个成员对象,它引用了也是成员类型的“friend”。publicclassMember:Entity{publicMember(){Friends=newList();}publicvirtualIListFriends{get;set;}}模式生成工具使其成为1:n关系,而它应该是n:n关系,即在成员表中添加一个名为member_id的列,并且不创建连接表。有什么方法可以在FluentNHibernate中创建一个引用多对多关系的Self吗?我尝试使用我之前得到的覆盖作为答案:publicclassMemberOverride:IAutoMappingOve